package com.flame.workflow.ru.mapper;

import java.util.List;

import com.flame.workflow.ru.controller.vo.UserTaskDetailVo;
import com.flame.workflow.ru.controller.vo.UserTaskVo;
import com.flame.workflow.ru.entity.UserTask;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * flame_workflow_ru_user_task 流程实例任务用户评论表
 *
 * @author 吴欣童
 * @since 2023-07-04 14:12:32
 */
@Mapper
public interface UserTaskMapper {

    UserTask findById(@Param("userTaskId") Long userTaskId);

    UserTask findByTaskIdAndUserId(@Param("taskId") Long taskId, @Param("userId") String userId);

    List<UserTaskDetailVo> page(UserTaskVo userTaskVo);

    List<UserTask> list(UserTask userTask);

    List<UserTask> listByTaskId(@Param("taskId") Long taskId);

    List<UserTask> listByInstanceId(@Param("instanceId") Long instanceId);

    void insert(UserTask userTask);

    void updateById(UserTask userTask);

    void updateByTaskId(UserTask userTask);

    void updateByTaskIdAndUserId(UserTask userTask);

    void deleteById(@Param("userTaskId") Long userTaskId);

    void deleteByTaskId(@Param("taskId") Long taskId);

    void deleteByTaskIdAndUserId(@Param("taskId") Long taskId, @Param("userId") String userId);
}